<?php
/**
 * Controller_FAQ
 *
 * Класс Controller_FAQ отвечает за обработку раздела FAQ 
 *
 * @author Дмитрий Кузьма <kouzma.d@gmail.com>
 * @version 1.0
 */
class Controller_FAQ extends Controller_Base {


	public function __construct(&$arrRequest) {
    $this->setCrumbs(array(
      array('url' => W_ABSPATH, 'name' => 'Хлебные крошки')
    ));

		parent::__construct($arrRequest);
		switch ($this->arrRequest[1]) {
		  case '':
   			$this->getActionListFAQs();
   			break;
		  case 'edit':
		  	if (isset($arrRequest[2]) && is_numeric($arrRequest[2])) {
		  	  $this->getActionEdit(intval($arrRequest[2]));
		  	}
		  	else $this->show404Error();
				break;
		  case 'add':
		  	$this->getActionAdd();
				break;
		  default: $this->show404Error();
		}
	}

	/**
	 * Действие - простой список вопросов - ответов ( FAQ )  
	 *
	 */
	public function getActionListFAQs(){
		$objFAQ = new FAQ();
  	$arrFAQ = $objFAQ->find('all', array('select' => '`faq`.`ID_faq`,  `faq`.`faq_name`, `faq`.`created_at`, `faq`.`text`',
																												 'order'=>'`created_at` ASC'
																												 ));
    $this->title = 'Частые вопросы';
		$this->pageHead = $this->title;
		if (SimpleAdministration::isAdmin()) $this->pageHead .= ' <a href="' . W_ABSPATH . 'faq/add/"><img src="' . W_IMAGES . 'button/add.gif" class="addButton" alt="" /></a>';
		$this->addCrumb($this->title, null, true);
		$this->addJs('faq.js');
		$this->addCss('faq.css');
		
		$this->showHeader();
      View_FAQ::showList($arrFAQ);
		$this->showFooter();		
	}
	
	/**
	 * Действие - редактирование вопроса - ответа ( FAQ )
	 *
	 * @param int $faqId
	 */
	public function getActionEdit($faqId) {
		$objFAQ = new FAQ($faqId);
		if (isset($_POST['FAQ'])) {
		  $objFAQ = new FAQ($_POST['FAQ']);
		  if ($faqId != $objFAQ->id) User_Session::moveTo(W_ABSPATH, 'Вы редактируете другой частый вопрос!');
			if ($objFAQ->save()) {
				User_Session::moveTo(W_ABSPATH . 'faq/', 'Частый вопрос изменен', 1);
			}
		}
		$this->addWysiwygMetas();		
		$this->title = 'Редактирование частого вопроса';
		$this->pageHead = $this->title;
	  $this->showHeader();
      View_FAQ::showForm($objFAQ);
	  $this->showFooter();
	}
	
  /**
	 * Действие - добавление вопроса - ответа ( FAQ ) 
	 *
	 */
	public function getActionAdd() {
		if (isset($_POST['FAQ'])) {
			$objFAQ = new FAQ($_POST['FAQ']);
			if ($objFAQ->save()) User_Session::moveTo(W_ABSPATH . 'faq/edit/' . $objFAQ->id . '/', 'Вопрос добавлен', 1);
		}
		else {
			$objFAQ = new FAQ();
		}
		
		$this->addWysiwygMetas();
	  $this->title = 'Добавление вопроса';
	  $this->pageHead = $this->title;
		$this->showHeader();
      View_FAQ::showForm($objFAQ);
	  $this->showFooter();
	}
}
?>